home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / MUI / MCC_Time / Developer / Cluster / txt / MCCTime.def next >
Encoding:
Text File  |  1997-08-17  |  3.1 KB  |  112 lines

  1. |##########|
  2. |#MAGIC   #|FDLAGMKN
  3. |#PROJECT #|""
  4. |#PATHS   #|"StdProject"
  5. |#LINK    #|""
  6. |#GUIDE   #|""
  7. |#STACK   #|"4096"
  8. |#FLAGS   #|xx---x-xxxx--xx-----------------
  9. |#USERSW  #|--x-----------------------------
  10. |#USERMASK#|--------------------------------
  11. |#SWITCHES#|xx---xxxxx-xx---
  12. |##########|
  13. DEFINITION MODULE MCCTime;
  14.  
  15. (*
  16. **
  17. ** Copyright © 1997 Kai Hofmann. All rights reserved.
  18. ** Registered MUI custom class!
  19. **
  20. ** $VER: MCCTime.def 12.4 (17.08.97)
  21. **
  22. ** Cluster interface model by henning.thielemann@student.uni-halle.de
  23. *)
  24.  
  25. FROM SYSTEM    IMPORT SysStringPtr;
  26. FROM Intuition IMPORT MsgRoot;
  27. FROM Utility   IMPORT HookPtr;
  28. FROM MuiO      IMPORT CBOOLEAN, ObjectRec, MuiTags, MethodID;
  29.  
  30. CONST
  31.   cTime        = "Time.mcc";
  32.  
  33. TYPE
  34.   TimeRec    = RECORD OF ObjectRec END;
  35.   TimeObject = POINTER TO TimeRec;
  36.  
  37.   DayChanges = (normal, winterToSummer, summerToWinter);
  38.   Compare    = (less = -1, equal = 0, greater = 1);
  39.  
  40.  
  41.   TimeTags = TAGS OF MuiTags
  42.     timeSecs            = $81EE0080 : LONGCARD;
  43.     timeHour            = $81EE0081 : SHORTCARD;
  44.     timeMinute          = $81EE0082 : SHORTCARD;
  45.     timeSecond          = $81EE0083 : SHORTCARD;
  46.     timeMinHour         = $81EE0084 : SHORTCARD;
  47.     timeMinMinute       = $81EE0085 : SHORTCARD;
  48.     timeMinSecond       = $81EE0086 : SHORTCARD;
  49.     timeMaxHour         = $81EE0087 : SHORTCARD;
  50.     timeMaxMinute       = $81EE0088 : SHORTCARD;
  51.     timeMaxSecond       = $81EE0089 : SHORTCARD;
  52.     timeZoneMinute      = $81EE008B : SHORTINT;
  53.     timeNextDay         = $81EE008C : SHORTCARD;
  54.     timePrevDay         = $81EE008D : SHORTCARD;
  55.     timeDaylightSaving  = $81EE008E : CBOOLEAN;
  56.     timeChangeHour      = $81EE008F : SHORTCARD;
  57.     timeChangeDay       = $81EE0095 : DayChanges;
  58.   END;
  59.  
  60.   TimeTagAPtr = POINTER TO ARRAY OF TimeTags;
  61.  
  62.  
  63. CONST
  64.   mTimeIncrease               = MethodID($81EE0092);
  65.   mTimeDecrease               = MethodID($81EE0093);
  66.   mTimeSetCurrent             = MethodID($81EE0094);
  67.   mTimeCompare                = MethodID($81EE0096);
  68.  
  69. TYPE
  70.   pTimeIncrease               = RECORD OF MsgRoot
  71.                   seconds : LONGCARD;
  72.                 END;
  73.   pTimeDecrease               = RECORD OF MsgRoot
  74.                   seconds : LONGCARD;
  75.                 END;
  76.   pTimeSetCurrent             = RECORD OF MsgRoot
  77.                 END;
  78.   pTimeCompare                = RECORD OF MsgRoot
  79.                     obj : TimeObject;
  80.                 END;
  81.  
  82. (* In this case, there is no simplification by implementing Cluster methods
  83.    as interface for MUI methods.
  84.    Please use DoMethod instead, like C programmers does.
  85.  
  86. METHOD Increase   (o : TimeObject);
  87. METHOD Decrease   (o : TimeObject);
  88. METHOD SetCurrent (o : TimeObject);
  89. METHOD Compare    (o : TimeObject);
  90. *)
  91.  
  92. PROCEDURE MakeTimeObjectA (tags : TimeTagAPtr) : TimeObject;
  93. PROCEDURE MakeTimeObject  (tags : LIST OF TimeTags) : TimeObject;
  94.  
  95. GROUP
  96.   TypeGrp =
  97.     DayChanges,    Compare;
  98.  
  99.   EssentialGrp =
  100.     cTime,
  101.     TimeRec,                TimeObject,
  102.     TimeTags,               TimeTagAPtr,
  103.     mTimeIncrease,          pTimeIncrease,
  104.     mTimeDecrease,          pTimeDecrease,
  105.     mTimeSetCurrent,        pTimeSetCurrent,
  106.     mTimeCompare,           pTimeCompare,
  107.     MakeTimeObject,         MakeTimeObjectA;
  108.  
  109.   All = EssentialGrp;
  110.  
  111. END MCCTime.
  112.